#define DEBUG
#include <cstdio>
#define MAXK 26

using namespace std;

void print(long long *f, int k) {
  for (int i=1; i<k; i++) {
    for (int j=1; j<=f[k-i+1]; j++) {
      printf("%c", 'a'+i-1);
    }
  }
  printf("%c", 'a'+k-1);
  for (int i=k-1; i>0; i--) {
    for (int j=1; j<=f[k-i+1]; j++) {
      printf("%c", 'a'+i-1);
    }
  }
}

int main() {
  freopen("gre.in", "r", stdin);
  freopen("gre.out", "w", stdout);

  static long long f[MAXK+1], g[MAXK+1];
  int q;
  f[2]=2;
  for (int i=3; i<=MAXK; i++) {
    f[i] = 2*f[i-1]+1;
  }
  g[1]=1;
  for (int i=2; i<=MAXK; i++) {
    g[i] = g[i-1]+2*f[i];
  }
  scanf("%d", &q);
  for (int i=1; i<=q; i++) {
    int n, k;
    scanf("%d %d", &n, &k);
    if (n<g[k]) {
      printf("CiYe\n");
    } else {
      for (int i=1; i<=n-g[k]; i++) {
	printf("a");
      }
      print(f, k);
      printf("\n");
    }
  }

  fclose(stdin);
  fclose(stdout);
  return 0;
}
